package com.microframework.boot.customapi.model.dev;

import javax.sql.DataSource;


import com.jfinal.plugin.druid.DruidPlugin;
import com.microframework.base.core.datasource.generator.Generator;

public class GeneratorCustomapiModel {

	public static DataSource getDataSource() {
		DruidPlugin druidPlugin = new DruidPlugin(
				"jdbc:mysql://192.168.1.120:23308/micro_rule?characterEncoding=utf8&useUnicode=true&characterEncoding=utf-8&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC&nullNamePatternMatchesAll=true&autoReconnect=true",
				"root", "vfcloud@2022");
		druidPlugin.start();
		return druidPlugin.getDataSource();
	}

	public static void main(String[] args) {
		genSysModel();
	}
	
	public static void genSysModel() {
		// base model 所使用的包名
		String baseModelPackageName = "com.microframework.boot.customapi.model.domain.base";
		// base model 文件保存路径
		String baseModelOutputDir = "E:\\code\\sts\\workspace-webapp\\micro-boot\\src\\main\\java\\com\\microframework\\boot\\datarule\\model\\domain\\base";

		// model 所使用的包名 (MappingKit 默认使用的包名)
		String modelPackageName = "com.microframework.boot.datarule.model.domain";
		// model 文件保存路径 (MappingKit 与 DataDictionary 文件默认保存路径)
		String modelOutputDir = baseModelOutputDir + "/..";

		// 创建生成器
		Generator generator = new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName,
				modelOutputDir);
		// generator.setMetaBuilder(new _MetaBuilder(getDataSource()));
		
		// 设置模板文件路径
		//generator.setBaseModelTemplate("/org/microframework/cloud/auth/generator/base_model_template.jf");
		
		// 设置是否生成链式 setter 方法
		generator.setGenerateChainSetter(false);
		// 添加不需要生成的表名
		generator.addExcludedTable("");
		;
		// 设置是否在 Model 中生成 dao 对象
		generator.setGenerateDaoInModel(true);
		// 设置是否生成链式 setter 方法
		generator.setGenerateChainSetter(true);
		// 设置是否生成字典文件
		generator.setGenerateDataDictionary(false);
		// 设置需要被移除的表名前缀用于生成modelName。例如表名 "osc_user"，移除前缀 "osc_"后生成的model名为 "User"而非
		// OscUser
		
		generator.setGenerateRemarks(true);
		generator.setTableNamePrefixes("");
		generator.setRemovedTableNamePrefixes("sys_");
		// 生成
		generator.generate();
	}

}